The pythoncapi-compat project can be used to write a C or C++ extension
supporting a wide range of Python versions with a single code base. It is made
of the pythoncapi_compat.h header file and the upgrade_pythoncapi.py script.
Provides
Requires
License
0BSD
Changelog
* Fri Oct 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20251003git97f1582-2
- Fix varargs indicator for `PyBytesWriter_Format`
* Fri Oct 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20251003git97f1582-1
- Update to 0^20251003git97f1582
- Fix compiler warnings for `PyBytesWriter_Format`
* Thu Sep 18 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250918gitab72af8-1
- Update to 0^20250918gitab72af8
- PEP 782: Add PyBytesWriter C API
* Thu Sep 18 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250901git90c06a4-2
- Update to 0^20250918gitab72af8
- PEP 782: Add PyBytesWriter C API
* Mon Sep 01 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250901git90c06a4-1
- Update to 0^20250901git90c06a4
- Add `PyUnstable_Object_IsUniquelyReferenced`
* Sat Aug 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250809git5e31710-1
- Update to 0^20250809git5e31710
- Fixed a typo in a comment in `upgrade_pythoncapi.py`
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0^20250624gitb541b98-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 24 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250624gitb541b98-1
- Update to 0^20250624gitb541b98
- Avoid `%T` format in error message
* Mon Jun 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250609gitffae0ff-1
- Update to 0^20250609gitffae0ff
- Add `PyUnicodeWriter_WriteASCII()`
* Mon Jun 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250603gitfde4d34-3
- Update to 0^20250609gitffae0ff
- Add `PyUnicodeWriter_WriteASCII()`
* Tue Jun 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250603gitfde4d34-1
- Update to 0^20250603gitfd34d34
- Add `PySys_GetAttr()` function
* Tue Apr 15 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250414git0a8b2c5-1
- Update to 0^20250414git0a8b2c5
- upgrade_pythoncapi: try to preserve newlines when patching
* Tue Feb 18 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250218git632d1aa-1
- Update to 0^20250218git632d1aa
- Don't redefine `_Py_NULL` macro if already defined
* Tue Jan 28 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250128gitc84545f-1
- Update to 0^20250128gitc84545f
- Remove `PyConfig.use_system_logger`: it will only be available on Python
3.13.2 which is not released yet.
- Fix multiple definitions for `Py_fclose`
- Avoid `Py_ARRAY_LENGTH()` (because it fails with C++ on Python 3.9 on
macOS)
- Improve `test_config`
- Replace `extern` with `PyAPI_FUNC()`
* Mon Jan 20 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250119git8a52253-1
- Update to 0^20250119git8a52253
- Add `PyConfig_Get()`
- Optimize `PyWeakref_GetRef()`
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0^20250106git79404e9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Jan 06 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250106git79404e9-1
- Update to 0^20250106git79404e9
- Add `Py_fopen()` and `Py_fclose()`
* Tue Dec 17 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241216git7eb512b-1
- Update to 0^20241216git7eb512b
- Add `structmember.h` constants
* Fri Dec 13 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241213git61709bf-1
- Update to 0^20241213git61709bf
- Add PyLong Import/Export API
* Fri Nov 15 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241115git03e441d-1
- Update to 0^20241115git03e441d
- Add `PyLong_IsPositive`/`Negative`/`Zero()` functions
- Relax `PYPY_VERSION_NUM` requirements for hash macros
* Wed Oct 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241009git669c882-1
- Update to 0^20241009git669c882
- Add `PyUnicode_Equal()` function
- Add `PyBytes_Join()` function
- Add `Py_HashBuffer()` function
- Add `PyIter_NextItem()` function
- Add `PyLong_FromUInt64()` and `PyLong_AsUInt64()`
* Wed Oct 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241008gitbb0934e-1
- Update to 0^20241008gitbb0934e
- Document PyUnicodeWriter API
* Wed Oct 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240923gitd20d7f8-2
- Update to 0^20241008gitbb0934e
- Document PyUnicodeWriter API
* Tue Sep 24 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240923gitd20d7f8-1
- Update to 0^20240923gitd20d7f8
- Fix incorrect use of assignment in place of an equality test.
* Mon Aug 26 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240826git2d18aec-1
- Update to 0^20240826git2d18aec
- Add critical section API
* Tue Aug 06 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240806git39e2663-1
- Update to 0^20240806git39e2663
- Add `static inline` to `PyUnicodeWriter_WriteStr()` and
`PyUnicodeWriter_WriteRepr()`.
* Thu Jul 18 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240718git4094c64-1
- Update to 0^20240718git4094c64
- Add PyUnicodeWriter API
* Mon Jul 08 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240708gitea1f7f6-1
- Update to 0^20240708gitea1f7f6
- `PyLong_GetSign` will be added in 3.14.0a0
* Wed Jun 05 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240603git18d1df7-1
- Update to 0^20240603git18d1df7: Add `PyLong_GetSign()`.
* Thu May 23 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240522git9d14fad-1
- Update to 0^20240522git9d14fad: Fix test_frame() on Python 3.13 beta 1
* Mon Apr 08 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240408gitccea884-1
- Update to 0^20240408git01341ac: Fix PyDict_SetDefaultRef() definition
* Thu Apr 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240404git68aad45-1
- Update to 0^20240404git68aad45: Fix Py_GetConstant() for Python 3.13.0a5+
* Fri Mar 29 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240329gitf667991-1
- Update to 0^20240329gitf667991: Add `PyList_GetItemRef()`
* Thu Mar 28 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240328gitd16872a-1
- Update to 0^20240328gitd16872a
- Fix test_unicode()
* Thu Mar 28 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240321gitb16ff9a-3
- Update to 0^20240328gitd16872a
- Fix test_unicode()
* Thu Mar 28 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240321gitb16ff9a-2
- Add an rpmlintrc file
* Thu Mar 21 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240321gitb16ff9a-1
- Update to 0^20240321gitb16ff9a
- Add `Py_GetConstant()` and `Py_GetConstantBorrowed()`
- Update `_Py_NULL` for C23
* Sat Mar 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240309git7539c7f-1
- Update to 0^20240309git7539c7f
- Add hash constants: `PyHASH_BITS`, `PyHASH_IMAG`, `PyHASH_INF`,
`PyHASH_MODULUS`
* Tue Feb 20 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240220git52486a9-1
- Update to 0^20240220git52486a9
- Add PyTime API: `PyTime_t` type, `PyTime_MIN` and `PyTime_MAX` constants,
`PyTime_AsSecondsDouble()`, `PyTime_Monotonic()`, `PyTime_PerfCounter()`,
and `PyTime_Time()`
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0^20231214gitdeb6f40-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0^20231214gitdeb6f40-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Dec 15 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231214gitdeb6f40-1
- Update to 0^20231214gitdeb6f40
- API: document not supported functions
- Add Py_HashPointer()
- Update tests
* Fri Dec 15 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231114git5bf2fb2-4
- Ask runtests.py not to look for “other” Python interpreters
* Fri Dec 15 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231114git5bf2fb2-3
- Use %py3_test_envvars when running tests
* Fri Dec 15 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231114git5bf2fb2-2
- Run tests verbosely
* Tue Nov 14 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231114git5bf2fb2-1
- Update to 0^20231114git5bf2fb2
- Add PyDict_Pop() and PyDict_PopString() functions
- Add PyList_Extend()
- Test Python 3.13
* Thu Oct 12 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20231012git99ab0d3-1
- Update to 0^20231012git99ab0d3
- Add PyUnicode_EqualToUTF8() and PyUnicode_EqualToUTF8AndSize() fu